我大宏哥,無情的斷捨離機器
覺得沒用的東西,就是直接斷捨離,毫不留情
沒用的群組直接斷捨離,高歌離席不帶猶豫
但程式沒辦法斷捨離,只能盡量低耦合高內聚
內聚可以說是將我們所需的資料跟程式包在一個模組內,使其成為一個單獨的個體執行
耦合則是模組間互相有關連,例如共用一段程式碼
在WPF中想要達到高內聚低耦合,程式設計模式MVVM必不可少
MVVM利用了WPF的資料繫結機制,大幅度的降低了Xmal檔案和CS檔案的耦合度
這樣的好處是UI跟底層邏輯可以同時開發,換介面幾乎不用動到底層邏輯
這也是我推薦直接學習WPF的原因,因為WPF學完基本上也會寫WinForm。
WinForm使用Windows Form控件模型,基本上你需要什麼控制項就去工具箱找到對應的控制項拉一到指定位置即可,使用起來相對簡單。WPF則是使用XAML控件模型,根據開發者需求靈活自訂義和擴展控制項。
舉例來說,想實現一個帶有圖像和文字的按鈕,在 WinForms 你只能自己畫或者用第三方控制項,畢竟這并不是一個標準的 Windows 控制項。而在 WPF 裏面,可以通過組合方式來實現。具體來說,就是在Button內插入一個Image和TextBlock。
我們一般在後臺程式碼中會使用控制元件的名字來操作控制元件的各種屬性,進行UI更新,而在WPF中通常是通過資料繫結來更新UI;在響應使用者操作上,WinForm是通過控制元件的事件來處理,而WPF可以使用命令繫結的方式來處理,耦合度將降低。
MVVM分別是資料層(Model)、視圖層(View)、資料視圖(ViewModel)的回應式框架。